<%@page isELIgnored="false" import="java.net.*" %>
<%@taglib prefix="tiles" uri="struts-tiles" %>
<%@taglib prefix="html" uri="struts-html" %>
<%@taglib prefix="bean" uri="struts-bean" %>
<%@taglib prefix="c" uri="jstl" %>
<%@taglib prefix="fn" uri="jstl-fn" %>
<%@taglib prefix="mcfn" uri="mcfn" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>

<%@page import="com.mastercard.assets.web.util.to.UserLogin"%><link rel="stylesheet" type="text/css" href="JSCal2/css/jscal2.css" />
<c:set var="request" value="<%= request %>" />
<link rel="stylesheet" type="text/css" href="JSCal2/css/border-radius.css" />
<script type="text/javascript" src="JSCal2/js/jscal2.js"></script>
<script type="text/javascript" src="JSCal2/js/lang/es.js"></script>
<script type="text/javascript">
	var numberOfMonths = 0 ;
	var numberOfResponseRateRows = 0 ;
	function recalcular( )
	{
		// toma el selet
//		tipoProd = document.getElementById( 'tipoProducto' ) ;

//		opciones = tipoProd.options ;

		// recorre
//		for( i = 0 ; i < opciones.length ; i++ )
//			alert( opciones[ i ] + ' - ' + opciones[ i ].selected ) ;

		document.getElementById( 'operation' ).value = 3 ;
		document.getElementById( 'FormaAlta' ).submit( ) ;
	}
	
	function myEqualsIgnoreCase( str01 , str02 )
	{               
	        return ( new String( str01.toLowerCase( ) ) == ( new String( str02 ) ).toLowerCase( ) ) ;
	}
	
//	function cambioTipoCampania()
//	{
//		// toma el nuevo valor
//		sel = document.getElementById( "tipoCampania" ) ;
//
//		// valor
//		valor = sel.options[ sel.selectedIndex ].text ;
//
//		// revisa si es igual a Uso
//		if( myEqualsIgnoreCase( valor , "Uso" ) )
//		{
//			// imprime
//			//alert( "Es igual" ) ;
//			document.getElementById( "TRExtra" ).style.display = "table-row" ;
//		}
//		// en caso e que no lo sea
//		else
//		{
//			//alert( "No es igual" ) ;
//			document.getElementById( "TRExtra" ).style.display = "none" ;
//		}
//
//		// revisa si es igual a Adquisicion
//		if( myEqualsIgnoreCase( valor , "Adquisicion" ) )
//		{
//			// imprime
//			//alert( "Es igual" ) ;
//			document.getElementById( "TRExtra-Adq" ).style.display = "table-row" ;
//		}
//		// en caso e que no lo sea
//		else
//		{
//			//alert( "No es igual" ) ;
//			document.getElementById( "TRExtra-Adq" ).style.display = "none" ;
//		}
//	}
	function changeProductSelect( )
	{
		//alert( 1 ) ;
		// tabla de campos
		tabla = document.getElementById( "TablaAssetProducto" ) ;
		
		//alert( 2 ) ;
		// verifica si hay algun elemento seleccionado
		// en caso de que no haya elemento seleccionado
		if( ! isProductSelected( ) )
		{
			//alert( 3 ) ;
			tabla.style.display = "none" ;
			// esconde todos los elementos
		//alert( 4 ) ;
			hideAllFields( ) ;
			//alert( 4.1 ) ;
		}
		// en caso de que si haya elementos seleccionados
		else
		{
			//alert( 5 ) ;
			tabla.style.display = "table" ;

			//alert( 6 ) ;
			// en caso de que el elemento 'todos los productos' este seleccionado
			if( isAllProductSelected( ) )
			{
				//alert( 7 ) ;
				showAllFields( ) ;
				//alert( 8 ) ;
			}
			// en caso de que no este seleccionado
			else
			{
				//alert( 9 ) ;
				// esconde todos los campos
				hideAllFields( ) ;
				
				//alert( 10 ) ;
				// luego activa todos los campos correspondientes
				showFields( ) ;
				//alert( 11 ) ;
			}
		}

		//alert( 12 ) ;
		// total de productos elegidos
		totalGDV = 0 ;
		
		//alert( 13 ) ;
		// recorre los productos
<c:forEach items="${AllProducts}" var="prod" varStatus="prodStatus" >
		// toma el input del producto
		inputProd = document.getElementById( "RR-InputHP-${prod.cveProducto}" ) ;
		// toma la columna del producto
		prodCol = document.getElementById( "TD-Title-${prod.cveProducto}" ) ;
		// en caso de que exista, y este visible y de que inputProd exista
		// en caso de que exista
		//alert( "${prod.cveProducto}: " + prodCol.style.display ) ;
		if( inputProd && prodCol && prodCol.style.display == "table-cell" )
		{
			// toma el valor
			valueInput = inputProd.value ;

			// convierte a numero
			valueNum = parseInt( valueInput ) ;

			// en caso d euqe sea numero
			if( ! isNaN( valueNum ) )
			{
				// suma
				totalGDV += valueNum ;
			}
			
		}
		//alert( "${prod.cveProducto}: " + prodCol.style.display ) ;
</c:forEach>

//alert( 14 ) ;
		document.getElementById( "GDVTotal" ).innerHTML = "" + totalGDV ;
		document.getElementById( "GDVTotal-h" ).value = totalGDV.toFixed(4) ;
		//alert( totalGDV ) ;
		//alert( 15 ) ;

		showAllEmpty( ) ;


		/// muestra los productos adecuados
		createAllMonthReg( ) ;
		showOnlyCorrect( ) ;

	}
	
	function showFieldsAdq( )
	{
		// toma los elementos de producto
		prodSel = document.getElementById( 'producto' ) ;

		// toma los hijos
		optionsProd = prodSel.options ;

		// seleccionado todos
		isAllSelected = false ;

		// los recorre
		for( i = 0 ; i < optionsProd ; i++ )
		{
			// verifica si esta seleccionado el elemento
			if( prodSel[ i ].selected )
			{
				// en caso de que sea 0 el i
				if( i == 0 )
				{
					// quiere decir que todos estan seleccionados
					isAllSelected = true ;

					// rompe el ciclo
					break ;
				}
			}// termina if para verificar si esta seleccionado el elemento
			else
			{
			}
		}// termina de recorrerlos

		// en caso de que esten todos seleccionados
		if( isAllSelected )
		{
			// recorre
			for( i = 0 ; i < optionsProd ; i++ )
			{
				// no importa si estan o no seleccionados
			}// termina de recorrerlos
		}// termina el if para el caso de que todos estan seleccionados
	}

	function calculateMonthOfCampaign( )
	{
		// toma el valor de fecha de inicio
		fechaInicio = document.getElementById( "fechaIni" ).value ;
		// toma el valor de fecha de fin
		fechaFin = document.getElementById( "fechaFin" ).value ;

//		alert( fechaInicio + " = " + fechaFin + " = " + fechaInicio.length + " = " + fechaFin.length ) ;
//		alert( fechaInicio == null ) ;
//		alert( fechaInicio.length == 0 ) ;
//		alert( fehcaFin == null ) ;
//		alert( fechaFin.length == 0 ) ;
		// en caso de que alguno de los dos sea vacio o no exista
		if( fechaInicio == null || fechaInicio.length == 0 || fechaFin == null || fechaFin.length == 0 )
		{
//			alert( "entra" ) ;
			// numero de meses  = 0
			numberOfMonths = 0 ;

			document.getElementById( "numberOfMonths" ).value = 0 ;

			// sale del metodo
			return ;
		}
		
//		alert( "sale" ) ;

		// en caso de que ambos tengan valores
//		alert( fechaInicio ) ;
//		alert( fechaFin ) ;

		// separa en tokens
		fIniTok = fechaInicio.split( "/" ) ;
		fFinTok = fechaFin.split( "/" ) ;

		// toma el mes y el anio inicial
		iniMes = fIniTok[ 1 ] ;
		iniAno = fIniTok[ 2 ] ;
		// toma el mes y el anio final
		finMes = fFinTok[ 1 ] ;
		finAno = fFinTok[ 2 ] ;

		// forma los numeros con el anio y el mes
		numIni = parseInt( iniAno + "" + iniMes ) ;
		numFin = parseInt( finAno + "" + finMes ) ;

		// en caso de que alguno no sea numero
		if( isNaN( numIni ) || isNaN( numFin ) )
		{
			// numero de meses  = 0
			numberOfMonths = 0 ;

			document.getElementById( "numberOfMonths" ).value = 0 ;

			// sale del metodo
			return ;
		}

		// en cso de uqe numIni sea mayor que numFin
		if( numIni > numFin )
		{
			// numero de meses  = 0
			numberOfMonths = 0 ;

			document.getElementById( "numberOfMonths" ).value = 0 ;

			// sale del metodo
			return ;
		}
		
		// realiza la resta numFin - numIni + 1
		total = numFin - numIni + 1 ;

		// mientras sea mayor de 88 le resta 88, esto se da cuando las fechas son de diferentes anios
		while( total > 88 )
			total -= 88 ;

		// guarda el resultado
		numberOfMonths = total ;

		document.getElementById( "numberOfMonths" ).value = total ;

//		alert( numberOfMonths ) ;
	}

	// calcula el total de tarjetas por producto de un producto
	function calculateTNTP( cveProducto )
	{
		// verifica que si exista
		if( ! cveProducto )
			// sale en caso de que no exista
			return ;

		// total
		total = 0 ;
		
		// recorre de 1 hasta numberOfMonths, inclusive
		for( iTntp = 1 ; iTntp <= numberOfMonths ; iTntp++ )
		{
			// toma el campo correspondiente
			inputMes = document.getElementById( "Inp-Adq-" + cveProducto + "-" + iTntp ) ;

			// en caso de null
			if( ! inputMes )
				// siguiente mes
				continue ;

			// en csao de no null
			// toma el valor y lo convierte en numero
			valorNum = parseInt( inputMes.value ) ;

			// en caso de que no sea numero
			if( isNaN( valorNum ) )
				// siguiente
				continue ;

			// en caso de que si sea numero
			// suma
			total += valorNum ;
			
		}// termina de recorrer los mese

		// en caso e que sea negativo
		if( total < 0 )
			total = 0 ;
		
		// toma el span
		spanMes = document.getElementById( "SPAN-TNTP-" + cveProducto +  "-Adq" ) ;

		// coloca en el span
		spanMes.innerHTML = "" + total ;

		// busca el hidden
		hiddenMes = document.getElementById( "Hidden-TNTP-" + cveProducto + "-Adq" ) ;
		hiddenMes.value = total ;
	}

	function showOnlyCorrect( )
	{
		//alert( "dentro de showOnlyCorrect " + numberOfMonths ) ;
		/////////////////// calcula todo para Adquisicion
		// tabla de campos
		tabla = document.getElementById( "TablaAssetProducto-Adq" ) ;
		
		isProdSelected = isProductSelected( ) ;
		//alert( "dentro de showOnlyCorrect isProductSelected " + isProdSelected ) ;
		//alert( 2 ) ;
		// verifica si hay algun elemento seleccionado
		// en caso de que no haya elemento seleccionado
		if( ! isProdSelected || numberOfMonths == 0 )
		{
			//alert( 3 ) ;
			tabla.style.display = "none" ;
			// esconde todos los elementos
		//alert( 4 ) ; 
//			hideAllFields( ) ;
			//alert( 4.1 ) ;
		}
		// en caso de que si haya elementos seleccionados
		else
		{
			//alert( 5 ) ;
			tabla.style.display = "table" ;

			productoSel = document.getElementById( "producto" ) ;

			//alert( "dentro de showOnlyCorrect productoSel " + productoSel ) ;
			prodElems = productoSel.options ;

			//alert( "dentro de showOnlyCorrect prodElems.length " + prodElems.length + " - " + isAllProductSelected( ) ) ;
			//alert( 6 ) ;
			// en caso de que el elemento 'todos los productos' este seleccionado
			if( isAllProductSelected( ) )
			{
				// muestra todos los productos en sus renglones correspondientes
				// recorre desde 1 hasta numberOfMonths
				for( iShow = 1 ; iShow <= numberOfMonths ; iShow++ )
				{
					// revisa cada producto del mes, ver si esta seleccionado
<c:forEach items="${AllProducts}" var="prod" varStatus="prodStatus" >
					// bandera indicadora
					flagInd = false ;

					// recorre los seleccionados
					// revisa todos los elementos del select productos
					for( iProd = 1 ; iProd < prodElems.length ; iProd++ )
					{
						// en caso de estar seleccionado y ser el mismo cveProducto
						if( prodElems[ iProd ].value == ${prod.cveProducto} )
						{
							// cambia la bandera
							flagInd = true ;

							// rompe ciclo
							break ;
						}
					}

					// en caso de que flagInd sea tru
					if( flagInd )
					{
						// esta seleccionado
						// toma el renglon correspondiente al renglon iShow y la clave de producto
						rengTD = document.getElementById( "TD-Adq-${prod.cveProducto}-" + iShow ) ;
						titleTD = document.getElementById( "TD-Title-${prod.cveProducto}-Adq" ) ;
						tnTD = document.getElementById( "TD-TN-${prod.cveProducto}-Adq" ) ;
						tntpTD = document.getElementById( "TD-TNTP-${prod.cveProducto}-Adq" ) ;
						
						//alert( "if " + iShow + " - " + iProd + " - " + rengTD + " - " + titleTD + " - " + tnTD ) ;
						// en caso de que exista
						if( rengTD )
						{
							// lo hace aparecer
							rengTD.style.display = "table-cell" ;
							titleTD.style.display = "table-cell" ;
							tnTD.style.display = "table-cell" ;
							tntpTD.style.display = "table-cell" ;
						}// termina if para verificar la existencia de rengTD
					}
					// en csao e que no este seleccionado
					else
					{
						// toma el renglon correspondiente al renglon iShow y la clave de producto
						rengTD = document.getElementById( "TD-Adq-${prod.cveProducto}-" + iShow ) ;
						titleTD = document.getElementById( "TD-Title-${prod.cveProducto}-Adq" ) ;
						tnTD = document.getElementById( "TD-TN-${prod.cveProducto}-Adq" ) ;
						tntpTD = document.getElementById( "TD-TNTP-${prod.cveProducto}-Adq" ) ;
						
						//alert( "if " + iShow + " - " + iProd + " - " + rengTD + " - " + titleTD + " - " + tnTD ) ;
						// en caso de que exista
						if( rengTD )
						{
							// lo hace aparecer
							rengTD.style.display = "none" ;
							titleTD.style.display = "none" ;
							tnTD.style.display = "none" ;
							tntpTD.style.display = "none" ;
						}// termina if para verificar la existencia de rengTD
					}
</c:forEach>
				}// termina for para recorrer numberOfMonths
			}// termina if para revisar si esta activado la opcion de todos los productos
			// en caso de que no este seleccionado
			else
			{
				// muestra todos los productos en sus renglones correspondientes
				// recorre desde 1 hasta numberOfMonths
				for( iShow = 1 ; iShow <= numberOfMonths ; iShow++ )
				{
					// revisa cada producto del mes, ver si esta seleccionado
<c:forEach items="${AllProducts}" var="prod" varStatus="prodStatus" >
					// bandera indicadora
					flagInd = false ;

					// recorre los seleccionados
					// revisa todos los elementos del select productos
					for( iProd = 1 ; iProd < prodElems.length ; iProd++ )
					{
						// en caso de estar seleccionado y ser el mismo cveProducto
						if( prodElems[ iProd ].selected && prodElems[ iProd ].value == ${prod.cveProducto} )
						{
							// cambia la bandera
							flagInd = true ;

							// rompe ciclo
							break ;
						}
					}

					// en caso de que flagInd sea tru
					if( flagInd )
					{
						// esta seleccionado
						// toma el renglon correspondiente al renglon iShow y la clave de producto
						rengTD = document.getElementById( "TD-Adq-${prod.cveProducto}-" + iShow ) ;
						titleTD = document.getElementById( "TD-Title-${prod.cveProducto}-Adq" ) ;
						tnTD = document.getElementById( "TD-TN-${prod.cveProducto}-Adq" ) ;
						tntpTD = document.getElementById( "TD-TNTP-${prod.cveProducto}-Adq" ) ;
						
						//alert( "if " + iShow + " - " + iProd + " - " + rengTD + " - " + titleTD + " - " + tnTD ) ;
						// en caso de que exista
						if( rengTD )
						{
							// lo hace aparecer
							rengTD.style.display = "table-cell" ;
							titleTD.style.display = "table-cell" ;
							tnTD.style.display = "table-cell" ;
							tntpTD.style.display = "table-cell" ;
						}// termina if para verificar la existencia de rengTD
					}
					// en csao e que no este seleccionado
					else
					{
						// toma el renglon correspondiente al renglon iShow y la clave de producto
						rengTD = document.getElementById( "TD-Adq-${prod.cveProducto}-" + iShow ) ;
						titleTD = document.getElementById( "TD-Title-${prod.cveProducto}-Adq" ) ;
						tnTD = document.getElementById( "TD-TN-${prod.cveProducto}-Adq" ) ;
						tntpTD = document.getElementById( "TD-TNTP-${prod.cveProducto}-Adq" ) ;
						
						//alert( "if " + iShow + " - " + iProd + " - " + rengTD + " - " + titleTD + " - " + tnTD ) ;
						// en caso de que exista
						if( rengTD )
						{
							// lo hace aparecer
							rengTD.style.display = "none" ;
							titleTD.style.display = "none" ;
							tnTD.style.display = "none" ;
							tntpTD.style.display = "none" ;
						}// termina if para verificar la existencia de rengTD
					}
</c:forEach>
				}// termina for para recorrer numberOfMonths
			}// termina el else que procsa el cso de que no este elegido el todos los productos
		}// termina el else para verificar que si haya elementos elegidos

	}

	// crea todos los renglones necesarios para los meses
	function createAllMonthReg( )
	{
		// tabla donde iran los renglones
		tablaReng = document.getElementById( "TablaAssetProducto-Adq" ) ;
		
		// toma el valor primero de numberOfMonths
		numberOfMonthsPrevio = numberOfMonths ;

		// actualiza el numberOfMonths
		calculateMonthOfCampaign( ) ;

		//alert( "createAllMonthReg " + numberOfMonthsPrevio + " - " + numberOfMonths ) ;
		// en caso de que no haya cambio
		if( numberOfMonthsPrevio == numberOfMonths )
		{
			// sale del metodo
			return ;
		}

		if( numberOfMonths > 0 )
		{
			tabDos = document.getElementById( "TablaAssetProducto-Adq" ) ;

			tabDos.style.display = "table" ;
		}
		// en csao de que sea igual a 0 el numberOfMonths
		else
		{
			// borra todos los renglones
			for( iM = 1 ; iM <= numberOfMonthsPrevio ; iM++ )
			{
				// verifica si se encuentra el renglon para dicho mes
				renglon = document.getElementById( "TR-Adq-" + iM ) ;

//				alert( "TR-Adq-" + iM + " existe? " + renglon ) ;
				// en caso de que exista
				if( renglon )
				{
					//alert( "borra " + ( 2 ) ) ;
					// elimina de la tabla
					tablaReng.deleteRow( 2 ) ;
					//alert( "borro " + ( 2 ) ) ;
				}
			}
			
			showOnlyCorrect( ) ;

			// sale del metodo
			return ;
		}

		// toma el renglon de la suma de las tarjetas
		renglonTarjetasTotales = document.getElementById( "TR-TNTP" ) ;

		// existe renglon de tartetas totales
		existRenglonTarjetasTotales = true ;

		if( ! renglonTarjetasTotales )
			existRenglonTarjetasTotales = false ;

		//alert( "comparacion entre numberOfMonthsPrevio < numberOfMonths (" + numberOfMonthsPrevio + "," + numberOfMonths + ")" ) ;
		// en caso d eque haya cambio pueden ser dos opciones
		// previo menor a actual
		if( numberOfMonthsPrevio < numberOfMonths )
		{
//			alert( "if " + numberOfMonths ) ;
			// recorre los meses, desde 1 hasta numberOfMonths
			for( iMonth = 1 ; iMonth <= numberOfMonths ; iMonth++ )
			{
				// verifica si se encuentra el renglon para dicho mes
				renglon = document.getElementById( "TR-Adq-" + iMonth ) ;

//				alert( "if existe renglon " + "TR-Adq-" + iMonth + ": " + renglon ) ;
				// en caso de que no exista
				if( ! renglon )
				{
//					alert( "if crea renglon " + existRenglonTarjetasTotales ) ;
					// lo agrega
					// en caso de que exista el renglon de tarjetas totales
					if( existRenglonTarjetasTotales )
					{
//						alert( "if agrega renglon antes de tarjetas totales" ) ;
						// cre el renglon
						renglonNuevo = crearRenglonDeMes( iMonth , tablaReng , 1 ) ;
//						alert( "if agrego renglon antes de tarjetas totales" ) ;
					}
					// en caso de que no exista el renglon de tarjetas totales
					else
					{
//						alert( "if else agrega renglon antes de tarjetas totales" ) ;
						// cre el renglon
						renglonNuevo = crearRenglonDeMes( iMonth , tablaReng , 0 ) ;
					}
					
				}// termina if para el caso de que no exista
				// en caso d eque si exista no hace nada, ahi lo deja
				
			}// recorre numero de meses
			
		}// termina el if para numberOfMonthsPrevio < numberOfMonths
		// en caso de numberOfMonthsPrevio > numberOfMonths
		else
		{
//			alert( "else inicio " + ( numberOfMonths + 1 ) + " final " + numberOfMonthsPrevio ) ;
			// esto quiere decir que se tienen que eliminar renglones
			// se recorre numberOfMonths + 1 hasta numberOfMonthsPrevio
			// recorre los meses, desde 1 hasta numberOfMonths
			for( iMonth = numberOfMonths + 1 ; iMonth <= numberOfMonthsPrevio ; iMonth++ )
			{
				// verifica si se encuentra el renglon para dicho mes
				renglon = document.getElementById( "TR-Adq-" + iMonth ) ;

//				alert( "TR-Adq-" + iMonth + " existe? " + renglon ) ;
				// en caso de que exista
				if( renglon )
				{
					//alert( "borra " + ( numberOfMonths + 2 ) ) ;
					// elimina de la tabla
					tablaReng.deleteRow( numberOfMonths + 2 ) ;
					//alert( "borro " + ( numberOfMonths + 2 ) ) ;
				}
			}// termina de recorrer los renglones
			
		}// termina else para numberOfMonthsPrevio > numberOfMonths
		
//		alert( "va a entrar a showOnlyCorrect " + numberOfMonths ) ;
		showOnlyCorrect( ) ;		
	}

	// crea un renglon de mes
	function crearRenglonDeMes( iMonth , tablaReng , cant )
	{
		// en caso de null
		if( ! iMonth )
			return null ;
		
		// nuevo renglon
		rengNuevo = tablaReng.insertRow( tablaReng.rows.length - cant ) ;

		// coloca el id
		rengNuevo.setAttribute( "id" , "TR-Adq-" + iMonth ) ;

		// tiene un td con el numero de mes
		tdMes = document.createElement( "td" ) ;
		tdMes.setAttribute( "align" , "center" ) ;
		// crea el texto
		textMes = document.createTextNode( "Mes " + iMonth ) ;
		// agrega nodo
		tdMes.appendChild( textMes ) ;
		// agrega a reglon
		rengNuevo.appendChild( tdMes ) ;

		// crea un td para cada uno de los productos
<c:forEach items="${AllProducts}" var="prod" varStatus="prodStatus" >
		// crea el td para el producto
		tdPro = document.createElement( "td" ) ;
		tdPro.setAttribute( "align" , "center" ) ;
		tdPro.setAttribute( "id" , "TD-Adq-${prod.cveProducto}-" + iMonth ) ;
		// crea el input
		inpPro = document.createElement( "input" ) ;
		inpPro.setAttribute( "name" , "Inp-Adq-${prod.cveProducto}-" + iMonth ) ;
		inpPro.setAttribute( "id" , "Inp-Adq-${prod.cveProducto}-" + iMonth ) ;
		inpPro.setAttribute( "style" , "width: 50px;" ) ;
		inpPro.setAttribute( "type" , "text" ) ;
		// coloca la funcion de javascript que se ejecutara cuando cambie el resultado.
		inpPro.onkeyup = function( )
		{
			calculateTNTP( ${prod.cveProducto} ) ;
		};
		// agrega
		tdPro.appendChild( inpPro ) ;
		// agrega a renglon
		rengNuevo.appendChild( tdPro ) ;
</c:forEach>		
		return rengNuevo ;
	}
	
	function hideAllFieldsAdq( )
	{
		// recorre todos los productos
<c:forEach items="${AllProducts}" var="prod" varStatus="prodStatus" >
</c:forEach>
	}
	
	function hideAllFields( )
	{
		// recorre todos los productos
<c:forEach items="${AllProducts}" var="prod" varStatus="prodStatus" >
		// producto ${prod.nombre}
		document.getElementById( "TD-Title-${prod.cveProducto}" ).style.display = "none" ;

		document.getElementById( "TD-1-${prod.cveProducto}" ).style.display = "none" ;
		document.getElementById( "TD-2-${prod.cveProducto}" ).style.display = "none" ;
//		document.getElementById( "TD-3-${prod.cveProducto}" ).style.display = "none" ;
		document.getElementById( "TD-7-${prod.cveProducto}" ).style.display = "none" ;
		document.getElementById( "TD-9-${prod.cveProducto}" ).style.display = "none" ;
//		document.getElementById( "CP-${prod.cveProducto}" ).value = "" ;
//		document.getElementById( "AT-${prod.cveProducto}" ).value = "" ;
//		document.getElementById( "DC-${prod.cveProducto}" ).value = "" ;
		// recorre todos los rr
		for( i = 1 ; i <= numberOfResponseRateRows ; i++ )
		{
			inp = document.getElementById( "RR-Input-" + i + "-${prod.cveProducto}" )
			
			// en caso de uqe no exista
			if( !inp )
				// siguiente
				continue ;
			
			inp.value = "" ;
		}
//		document.getElementById( "IT-${prod.cveProducto}" ).value = "" ;
//		document.getElementById( "TDD-9-${prod.cveProducto}" ).innerHTML = "" ;
//		document.getElementById( "TDD-10-${prod.cveProducto}" ).innerHTML = "" ;
</c:forEach>
	}
	function showAllFields( )
	{
		// verifica si esta elegido el todos en el producto
		prodSel = document.getElementById( "producto" ) ;

		optionsProd = prodSel.options ;

		hideAllFields( ) ;
		// recorre las opciones
		for( j = 0 ; j < optionsProd.length ; j++ )
		{
			prodValue = optionsProd[ j ].value ;

			// en caso de que sea la de valor 0
			if( prodValue == 0 )
				// siguiente
				continue ;

			// en caso de que sea cualquier otra
			document.getElementById( "TD-Title-" + prodValue ).style.display = "table-cell" ;

			document.getElementById( "TD-1-" + prodValue ).style.display = "table-cell" ;
			document.getElementById( "TD-2-" + prodValue ).style.display = "table-cell" ;
			document.getElementById( "TD-7-" + prodValue ).style.display = "table-cell" ;
			document.getElementById( "TD-9-" + prodValue ).style.display = "table-cell" ;
			// recorre todos los rr
			for( i = 1 ; i <= numberOfResponseRateRows ; i++ )
			{
				inp = document.getElementById( "RR-Input-" + i + "-" + prodValue )
				
				// en caso de uqe no exista
				if( !inp )
					// siguiente
					continue ;
				
				inp.value = "" ;
			}
		}

		
		// recorre todos los productos
	}
	function showFields( )
	{
		prod = document.getElementById( "producto" ) ;

		// opciones
		opciones = prod.options ;

		// recorre las opciones
		if( opciones )
		{
			// ciclo para recorrer
			for( i = 0 ; i < opciones.length ; i++ )
			{
				// en caso de que este seleccionado
				if( opciones[ i ].selected )
				{
					// activa todo lo relacionado con la opcion
					document.getElementById( "TD-Title-" + opciones[ i ].value ).style.display = "table-cell" ;

					document.getElementById( "TD-1-" + opciones[ i ].value ).style.display = "table-cell" ;
					document.getElementById( "TD-2-" + opciones[ i ].value ).style.display = "table-cell" ;
//					document.getElementById( "TD-3-" + opciones[ i ].value ).style.display = "table-cell" ;
					// recorre todos los rr
					for( j = 1 ; j <= numberOfResponseRateRows ; j++ )
					{
						inp = document.getElementById( "RR-Field-" + j + "-${prod.cveProducto}" )
						
						// en caso de uqe no exista
						if( !inp )
							// siguiente
							continue ;
						
						inp.style.display = "table-cell" ;
						
						inp = document.getElementById( "GPM-Field-" + j + "-${prod.cveProducto}" )
						
						// en caso de uqe no exista
						if( !inp )
							// siguiente
							continue ;
						
						inp.style.display = "table-cell" ;
					}
					document.getElementById( "TD-7-" + opciones[ i ].value ).style.display = "table-cell" ;
					document.getElementById( "TD-9-" + opciones[ i ].value ).style.display = "table-cell" ;
					//document.getElementById( "TD-10-" + opciones[ i ].value ).style.display = "table-cell" ;
					
//					document.getElementById( "CP-" + opciones[ i ].value ).value = "" ;
//					document.getElementById( "AT-" + opciones[ i ].value ).value = "" ;
//					document.getElementById( "DC-" + opciones[ i ].value ).value = "" ;
					// recorre todos los rr
					for( j = 1 ; j <= numberOfResponseRateRows ; j++ )
					{
						inp = document.getElementById( "RR-Input-" + j + "-${prod.cveProducto}" )
						
						// en caso de uqe no exista
						if( !inp )
							// siguiente
							continue ;
						
						inp.value = "" ;
					}
//					document.getElementById( "IT-" + opciones[ i ].value ).value = "" ;
//					document.getElementById( "TDD-9-" + opciones[ i ].value ).innerHTML = "" ;
//					document.getElementById( "TDD-10-" + opciones[ i ].value ).innerHTML = "" ;
				}
			}// fin de ciclo for

		}// termina el if
		
	}
	function dropNotNecesary( )
	{
		// recorre todos los productos habidos 
		// variable que guarda el numero maximo de duracion de campania
		numMaxDC = 0 ;

		// toma el input de los meses
		inputDC = document.getElementById( "DC" ) ;

//		alert( "dropNotNecesary 1" ) ;
<c:forEach items="${AllProducts}" var="prod" varStatus="prodStatus" >
		// para el producto ${prod.nombre} toma la celda de Duraci[on de campania
		tdDC = document.getElementById( "TD-Title-${prod.cveProducto}" ) ;

//		alert( "dropNotNecesary 1 - ${prod.cveProducto}" ) ;
		// en caso de que exista
		if( tdDC )
		{
			// verifica si esta visible o no

//		alert( "dropNotNecesary 2 - ${prod.cveProducto}" ) ;
			// en cso de que este visible
			if( tdDC.style.display == "table-cell" )
			{
//				alert( "dropNotNecesary 3 - ${prod.cveProducto}" ) ;
				// en caso de que exista
				if( inputDC )
				{
//					alert( "dropNotNecesary 4 - ${prod.cveProducto}" ) ;
					// toma el valor
					valueDC = inputDC.value ;

					// en caso de uqe este vacio
					if( valueDC == "" )
						// coloca 0
						valueDC = "0" ;
					
					// convierte en int
					intDC = parseInt( valueDC ) ;

//					alert( "dropNotNecesary 5 - ${prod.cveProducto}" ) ;
					// en caso de que sea numero
					if( !isNaN( intDC ) )
					{
//						alert( "dropNotNecesary 6 - ${prod.cveProducto}" ) ;
						// revisa si intDC es mayor que numberOfResponseRateRows
						if( intDC > numMaxDC )
							// modifica valor
							numMaxDC = intDC ;
					}
				}
			}
			// en caso de que no sea visible
			//else
			//{
				// en caso de que exista
			//	if( inputDC )
					// dado que no es visible borra el numero
			//		inputDC.value = "" ;
			//}
		}
</c:forEach>

		// verifica si numberOfResponseRateRows sea menor o igual a numMaxDC
		borradas = 0 ;
		// en caso de que numMaxDC sea menor a numberOfResponseRateRows
		if( numMaxDC < numberOfResponseRateRows )
		{
			//alert( "dropNotNecesary 10" ) ;
			// recorre los que se van a borrar
			for( i = numberOfResponseRateRows ; i > numMaxDC ; i-- )
			{
				// borra los renglones de GDV
				tabla = document.getElementById( "TablaAssetProducto" ) ;

				// renglon gdv
			//alert( "dropNotNecesary 10: " + ( 3 + numberOfResponseRateRows + 1 + 1 + numMaxDC - borradas ) ) ;
				tabla.deleteRow( 3 + numberOfResponseRateRows + 1 + 1 + numMaxDC - borradas ) ;
				// renglon rr
			//alert( "dropNotNecesary 10: " + ( 3 + 1 + numMaxDC ) ) ;
				tabla.deleteRow( 3 + 1 + numMaxDC ) ;

				// incrementa borradas
				borradas++ ;
				
			}// acaba ciclo for

			numberOfResponseRateRows = numMaxDC ;
		}
	}

	function showAllEmpty( )
	{
<c:forEach items="${AllProducts}" var="prod" varStatus="prodStatus" >
		// para el producto ${prod.nombre} toma la celda de Duraci[on de campania
		tdDC = document.getElementById( "TD-Title-${prod.cveProducto}" ) ;

//		alert( "dropNotNecesary 1 - ${prod.cveProducto}" ) ;
		// en caso de que exista
		if( tdDC )
		{
			// verifica si esta visible o no

//		alert( "dropNotNecesary 2 - ${prod.cveProducto}" ) ;
			// en cso de que este visible
			if( tdDC.style.display == "table-cell" )
			{
				// recorr todos los renglones
				for( i = 1 ; i <= numberOfResponseRateRows ; i++ )
				{
					// toma el td del renglon
					tdRenglon = document.getElementById( "RR-Field-" + i + "-${prod.cveProducto}" ) ;

					// en caso de que exista
					if( tdRenglon )
						tdRenglon.style.display = "table-cell" ;
					
					tdRenglon = document.getElementById( "GPM-Field-" + i + "-${prod.cveProducto}" ) ;

					//alert( "!" + tdRenglon ) ;
					
					// en caso de que exista
					if( tdRenglon )
						tdRenglon.style.display = "table-cell" ;
				}
			}
			// en caso de que no sea visible
			else
			{
				// recorr todos los renglones
				for( i = 1 ; i <= numberOfResponseRateRows ; i++ )
				{
					// toma el td del renglon
					tdRenglon = document.getElementById( "RR-Field-" + i + "-${prod.cveProducto}" ) ;

					// en caso de que exista
					if( tdRenglon )
						tdRenglon.style.display = "none" ;
					
					tdRenglon = document.getElementById( "GPM-Field-" + i + "-${prod.cveProducto}" ) ;

					//alert( "1" + tdRenglon ) ;
					
					// en caso de que exista
					if( tdRenglon )
						tdRenglon.style.display = "none" ;
				}
			}
		}
</c:forEach>

	}
	
	function isProductSelected( )
	{
		prod = document.getElementById( "producto" ) ;

		if( ! prod )
			return false ;
		
		// opciones
		opciones = prod.options ;

		// variable final
		res = false ;
		
		// recorre las opciones
		if( opciones )
		{
			// ciclo para recorrer
			for( i = 0 ; i < opciones.length ; i++ )
			{
				// en caso de que este seleccionado
				if( opciones[ i ].selected )
				{
					// cambia el resultado
					res = true ;

					// rompe ciclo
					break ;
				}
			}// fin de ciclo for

		}
		
		// regresa resultado
		return res ;
	}
	function isAllProductSelected( )
	{
		prod = document.getElementById( "producto" ) ;

		// opciones
		opciones = prod.options ;

		// variable final
		res = false ;
		
		// recorre las opciones
		if( opciones )
		{
			// ciclo para recorrer
			for( i = 0 ; i < opciones.length ; i++ )
			{
				// en caso de que este seleccionado
				if( opciones[ i ].value == 0 && opciones[ i ].selected )
				{
					// cambia el resultado
					res = true ;

					// rompe ciclo
					break ;
				}
			}// fin de ciclo for

		}
		
		// regresa resultado
		return res ;
	}
	
//	document.body.onload = function( )
//	{
//		cambioTipoCampania( ) ;
//		changeProductSelect( ) ;
//	}

	function changeDuracionCampana( actualValue )
	{
		//alert( cveProduct + "-" + actualValue ) ;

		// toma el input
		inpDC = document.getElementById( "DC" ) ;

		actualValue = "0" ;

		if( inpDC )
			actualValue = inpDC.value ;

//		alert( "ActualValue: " + actualValue ) ;
		
		// toma la table
		tabla = document.getElementById( "TablaAssetProducto" ) ;

//		alert( "Tabla: " + tabla + " - " + tabla.id ) ;
		
		// en csao de que no exista la tabla
		if( ! tabla )
			return ;

//		alert( "updateRRRow: " + numberOfResponseRateRows ) ;
		
		// actualiza los tr
		updateRRRow( actualValue ) ;
		
		alert( "updateRRRow: " + numberOfResponseRateRows ) ;
		
		// recorre los tr existentes
		
		// toma los elementos hijos (elementos tr)
		trs = tabla.getElementsByTagName( "tr" ) ;
//                alert(trs);
		// en caso d que no existan tr
		if( ! trs )
			return ;

		// recorre todos los tr de tipo Response rate
		for( i = 1 ; i <= numberOfResponseRateRows ; i++ )
		{
//			alert( "TDActual: RR-Field-" + i + "-" + cveProduct ) ;
			
			// busca la td correspondiente al renglon i y el producto cveProduct
<c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" >
			tdActual = document.getElementById( "RR-Field-" + i + "-" + ${prod} ) ;
			//alert("value Prod: " + ${prod});
			tdActual.style.display = "table-cell" ;

			// toma el elemento del input para dicho renglon
			inputActual = document.getElementById( "RR-Input-" + i + "-" + ${prod} ) ;
			inputHActual = document.getElementById( "RR-InputH-" + i + "-" + ${prod} ) ;
alert("ActualValue: " + actualValue + " vI: "+ i );
			// en csao d eque i sea menor o igual a actualValue
			if( i <= actualValue )
			{
				// querra decir que debe haber un input en el tdActual
				// en caso de que inputActual no exista
				if( ! inputActual )
				{alert("inputActual: " + inputActual );
					// lo crea el input text
					inputActual = document.createElement( "input" ) ;
					inputActual.setAttribute( "id" , "RR-Input-" + i + "-" + ${prod} ) ;
					inputActual.setAttribute( "name" , "RR-Input-" + i + "-" + ${prod} ) ;
					inputActual.setAttribute( "type" , "text" ) ;
					inputActual.style.width = "50px" ;
					// coloca la funcion de javascript que se ejecutara cuando cambie el resultado.
					inputActual.onkeyup = function( )
					{
						changeTextField( ${prod} ) ;
					};

					// agrega al tdActual
					tdActual.appendChild( inputActual ) ;

					// texto
					textNode = document.createTextNode( "(porcentaje)" ) ;
					tdActual.appendChild( textNode ) ;

					// lo crea el input hidden para guardar el gdv
					inputHActual = document.createElement( "input" ) ;
					inputHActual.setAttribute( "id" , "RR-InputH-" + i + "-" + ${prod} ) ;
					inputHActual.setAttribute( "name" , "RR-InputH-" + i + "-" + ${prod} ) ;
					inputHActual.setAttribute( "type" , "hidden" ) ;

					// agrega al tdActual
					tdActual.appendChild( inputHActual ) ;
alert("inputActual: " + inputActual );
				}
				// en caso de que ya exista no hace nada
			}
			// en caso de que sea mayor a actualValue
			else
			{
				// querra decir que en este renglon no puede haber input

				// en caso de que el inputActual si exista
				if( inputActual )
				{
					// borra contenido de tdActual
					while( tdActual.hasChildNodes( ) )
					{
						tdActual.removeChild( tdActual.lastChild ) ;
					}
//					tdActual.removeChild( inputActual ) ;
//					tdActual.removeChild( inputHActual ) ;
				}
				// si no existe lo deja igual
			}
</c:forEach>
		}

		showFields( ) ;
		//alert(1) ;
		dropNotNecesary( ) ;
		//alert(2) ;
		showAllEmpty( ) ;
	}

	function changeTextField( cveProduct )
	{
		recalculateGDV( cveProduct )

		recalculateGDVTotal( ) ;
                
                recalculateROI( ) ;
	}
        
        function changeTextField2( cveProduct )
	{
		recalculateTP( cveProduct )

		recalculateTotal( ) ;
                
                recalculateROItar( ) ;
	}

	function recalculateROItar( )
        {
            roi = 0 ;
            revenueParcial = 0 ;
            revenue = 0 ;
            Inv = document.getElementById("ctp").value ;

<c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" >
            
            revenueH = document.getElementById( "revTar-${prod}" ) ;
            revenueHInt = parseFloat( revenueH.value ) ;
            
            revenueParcial += revenueHInt ;

</c:forEach>

            revenue = revenueParcial ;
            roi = revenue/Inv ;
        
            document.getElementById( "revTTar" ).value = revenue ;
            document.getElementById( "roiTar" ).value = roi.toFixed(6) ;
            
        }
        
        function recalculateTotal( )
        {
            total = 0 ;
            Inv = document.getElementById("ctp").value ;
            
    <c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" >
            
            tElem = document.getElementById( "TNTP-${prod}" ) ;
            tInt = parseFloat( tElem.value ) ;
            //alert('tInt  '+tInt);
            cardBps = document.getElementById( "cardBps-${prod}" ) ;
            cardBpsInt = parseFloat( cardBps.value ) ;
            //alert('cardBpsInt  '+cardBpsInt);
            total += tInt ;
            //alert('total  '+total);
            gdvParcial = tInt ;
            //alert('gdvParcial  '+gdvParcial);
            revenue = gdvParcial*cardBpsInt ;
            //alert('revenue  '+revenue);
            document.getElementById( "revTar-${prod}" ).value = revenue ;//roi = revenue/Inv ;
            
    </c:forEach>
            
            document.getElementById( "TNTotal-h" ).value = total ;
            //document.getElementById( "roi" ).value = roi ;
        }
        
        function recalculateROI( )
        {
            roi = 0 ;
            revenue = 0 ;
            Inv = document.getElementById("ctp").value ;

<c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" >
            
            revenueH = document.getElementById( "rev-${prod}" ) ;
            revenueHInt = parseFloat( revenueH.value ) ;
            
            revenue += revenueHInt ;

</c:forEach>

            roi = revenue/Inv ;
                    
            document.getElementById( "revT" ).value = revenue.toFixed(6) ;
            document.getElementById( "roi" ).value = roi.toFixed(6) ;
            
        }
        
        // recalcula el GDVTotal
	function recalculateGDVTotal( )
	{		
                gdvtotal = 0 ;
//                gdvParcial = 0 ,
                fromGDV = 0 ;
//                roi = 0 ;
            Inv = document.getElementById("ctp").value ;

		// recorre todos los productos
<c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" >
		// toma la columna de titulo del producto ${prod}
            
            rrH = document.getElementById( "RR-InputHP-${prod}" ) ;
            rrInt = parseFloat( rrH.value ) ;
            percent = document.getElementById( "percentDomestic-${prod}" ) ;
            /*Manda error*/
            if(percent){
                percentInt = parseFloat( percent.value ) ;
            }else{
                percentInt = 0;
            }
            
            domeBps = document.getElementById( "domesticBps-${prod}" ) ;
            if(domeBps){
                domeBpsInt = parseFloat( domeBps.value ) ;
            }else{
                domeBpsInt = 0 ;
            }
            
            intlBps = document.getElementById( "intlBps-${prod}" ) ;
            if(intlBps ){
                intlBpsInt = parseFloat( intlBps.value ) ;
            }else{
                intlBpsInt = 0 ;
            }
                        
            //alert(""+rrInt+" - "+percentInt+" - "+domeBpsInt+" - "+intlBpsInt);
            if ( ! isNaN(rrInt) )
                {
                   gdvtotal += rrInt ;
                   
                   gdvParcial = rrInt/1000000 ;
                   
                   fromGDV = gdvParcial*percentInt*domeBpsInt*1000000+gdvParcial*(1-percentInt)*intlBpsInt*1000000 ;                   
                                      
                   
                   document.getElementById( "rev-${prod}" ).value = fromGDV ;
                }
              
</c:forEach>
		
		document.getElementById( "GDVTotal-h" ).value = gdvtotal.toFixed(4) ;
                 
                
		
	}
	
        function recalculateTP( cveProduct )
        {
            InpStr = "0" ;
            ttC = 0 ;
            ttc = parseFloat( ttC );
            tStr = "0" ;
            t = 0 ;
            T = parseFloat( t );
            
            <c:set var="x" value="GenerarCampanaRegistrarForm.duCa"/>
                    
            duCaElem = ${x} ;
            
            if( duCaElem )
			duCaStr = duCaElem.value ;
            
            duCa = parseInt( duCaStr ) ;
             ;
            for( i = 1 ; i <= duCa ; i++ )
                {
                    InpElem = document.getElementById( "Inp-Adq-" + cveProduct + "-" + i ) ;
                    
                    if( InpElem )
                        InpStr =  InpElem.value ;
                    
                    
                    Inp = parseFloat( InpStr ) ;
                    
                    ttc += Inp ;
                }
            
                document.getElementById( "TNTP-" + cveProduct ).value = ttc ;
                
//           for( i = 1 ; i <= duCa ; i++ )
//                {
//                    tElem = document.getElementById( "TNTP-" + i ) ;
//                    
//                    if( tElem )
//                        tStr =  tElem.value ;
//                    
//                    
//                    vT = parseFloat( tStr ) ;
//                    
//                    T += vT ;
//                }
//                
//                document.getElementById( "TNTotal-h" ).value = T ;

           
        }
        
	// recalcula los gdv
	function recalculateGDV( cveProduct )
	{
//		alert( "recalcular: " + cveProduct ) ;
		cpStr = "0" ;
		dcStr = "0" ;
		atStr = "0" ;
		itStr = "0" ;
		//document.getElementById( "DC" ) = document.getElementById( "duCa" ) ;
                
                //alert("DC: " + CD );
                
		// toma los valores de CP y DC, AT y IT
		cpElem = document.getElementById( "CP-" + cveProduct ) ;
		dcElem = document.getElementById( "DC" ) ;
		atElem = document.getElementById( "AT-" + cveProduct ) ;
		itElem = document.getElementById( "IT-" + cveProduct ) ;
                

		// revisa si existe
		// en caso de que exista
		if( cpElem )
			// convierte a string
			cpStr = cpElem.value ;
		
		// revisa si existe
		// en caso de que exista
		if( dcElem )
			dcStr = dcElem.value ;

		// revisa si existe
		// en caso de que exista
		if( atElem )
			atStr = atElem.value ;

		// revisa si existe
		// en caso de que exista
		if( itElem )
			itStr = itElem.value ;

		// revia que existan, si no existen coloca en 0
		if( ! cpStr )
			cpStr = "0" ;
		if( ! dcStr )
			dcStr = "0" ;
		if( ! atStr )
			atStr = "0" ;
		if( ! itStr )
			itStr = "0" ;
		
		// convierte a numeros flotantes
		cp = parseFloat( cpStr ) ;
		at = parseFloat( atStr ) ;
		it = parseFloat( itStr ) ;
		dc = parseInt( dcStr ) ;

		// en caso de no ser numero
		if( isNaN( at ) )
			at = 0 ;
		if( isNaN( it ) )
			it = 0 ;

		totalDeProducto = 0 ;
		
//	alert( "recalcular: " + cp + "_" + at + "_" + it + "_" + dc ) ;
		// recorre los n[umero de meses
		for( i = 1 ; i <= dc ; i++ )
		{
//			alert( "Numero de mes: " + i ) ;
			// obtiene el campo de response rate correspondiente al ciclo actual
			rrActual = document.getElementById( "RR-Input-" + i + "-" + cveProduct ) ;
			rrActualH = document.getElementById( "RR-InputH-" + i + "-" + cveProduct ) ;

//			alert( "Campos " + rrActual + rrActualH ) ;
			// guarda el valor
			rrInt = 0 ;
			
			// en caso de que no exista
			if( ! rrActual )
			{
//				alert( "recalcular: 1" ) ;
				// lo toma como 0
				rrInt = 0 ;
			}
			// en caso de que exista
			else
			{
//				alert( "recalcular: 2" ) ;
				// toma el valor
				rrValue = rrActual.value ;
				rrValueFloat = parseFloat( rrValue ) ;

				// en caso de que no sea numero
				if( isNaN( rrValueFloat ) )
					// asignamos 0
					rrInt = 0 ;
				// en caso d eque si sea numero
				else
					rrInt = rrValueFloat ;
			}
			
//			alert( "recalcular: -" + rrInt ) ;
			// obtiene ResponseAcount
			responseAcount = cp * rrInt / 100 ;
//alert("CP("+cp+")*rrInt("+rrInt+")/100 ="+responseAcount+" -responseAcount- ");
//			alert( "responseAcount: $" + responseAcount ) ;
			// calcula el gdvpormes
			gdvpm = responseAcount * at * it ;
                       // document.getElementById( "TDD-90-" + i + "-"+ cveProduct ).innerHTML = "" + gdvpm ;
                        document.getElementById( "RR-InputH-" + i + "-"+ cveProduct ).value = "" + gdvpm ;
                        
//			alert( "gdvpm: $" + gdvpm ) ;
			// coloca valor en campo oculto y en span
			// coloca error en el span
			tdText = document.getElementById( "GPM-Field-" + i + "-" + cveProduct ) ;

			totalDeProducto = totalDeProducto + gdvpm ;
                        
//			alert( "tdText: $" + tdText ) ;
			// en caso de que exista
			if( tdText )
			{
//				alert( "entra: " + 2 ) ;
				// crea el texto
				textNew = document.createTextNode( "" + gdvpm ) ;

//				alert( "textNew: $" + textNew ) ;
//				alert( "hasChilds: $" + tdText.hasChildNodes( ) ) ;
				// borra los actuales
				while( tdText.hasChildNodes( ) )
					tdText.removeChild( tdText.lastChild ) ;
				
				tdText.appendChild( textNew ) ;
				//alert( "despues: $" + 1 ) ;
			}
			
			//alert( "fuera" ) ;
			// en caso de que exista el campo oculto
			if( rrActualH )
				rrActualH.value = gdvpm ;
			//alert( "final" ) ;                       
                        
		}

		// coloca el total de producto
		//document.getElementById( "TDD-9-" + cveProduct ).innerHTML = "" + totalDeProducto ;
                //document.getElementById( "GDVTotal" ).innerHTML = "" + totalDeProducto ;
		document.getElementById( "RR-InputHP-" + cveProduct ).value = totalDeProducto ;                
                
                
		/////////

		showAllEmpty( ) ;
	}
	// revisa el contenido y regresa el valor actual
	function checkAndReturnValue( tdId , cveProduct )
	{
		if( ( ! tdId ) || ( ! cveProduct ) )
			return 0 ;
		
		// toma el elemento en caso d eque sea del 1 al 7
		if( tdId > 0 && tdId < 8 )
		{
			// identificador del elemento
			elemId = "" ;

			switch( tdId )
			{
				case 1 :
					elemId = "CP-" + cveProduct ;
					break ;
					
				case 2 :
					elemId = "AT-" + cveProduct ;
					break ;
					
				case 3 :
					elemId = "DC-" + cveProduct ;
					break ;
					
				case 4 :
					elemId = "RR1-" + cveProduct ;
					break ;
					
				case 5 :
					elemId = "RR2-" + cveProduct ;
					break ;
					
				case 6 :
					elemId = "RR3-" + cveProduct ;
					break ;
					
				case 7 :
					elemId = "IT-" + cveProduct ;
					break ;
					
			}
			
			// toma el elementos
			elem = document.getElementById( elemId ) ;

			// en caso de que no exista
			if( ! elem )
				return 0 ;

			// revisa el contenido
			valor = elem.value ;

			// en caso de que el valor sea cadena vacia
			if( valor == null || valor.length == 0 )
			{
				// coloca el 0
				elem.value = "0" ;

				// regresa 0
				return 0 ;
			}
			// en caso de que si haya numero
			else
			{
				// revisa que sea numero
				numValue = parseFloat( valor ) ;

				// en caso de que no sea numero
				if( isNaN( numValue ) )
					// regresa 0
					return 0 ;
				// en caso de que si sea numero
				else
					// regresa el numero
					return numValue ;
			}
			
		}// termina el if del 1 al 7
		// en caso d eque sea 8, 9 , 10
		else
		{
			// identificador del elemento
			elemId = "TDD-" + tdId + "-" + cveProduct ;

			// toma el elementos
			elem = document.getElementById( elemId ) ;

			// en caso de que no exista
			if( ! elem )
				return 0 ;

			// revisa el contenido
			valor = elem.innerHTML ;

			// en caso de que el valor sea cadena vacia
			if( valor == null || valor.length == 0 )
			{
				// coloca el 0
				elem.value = "0" ;

				// regresa 0
				return 0 ;
			}
			// en caso de que si haya numero
			else
			{
				// revisa que sea numero
				numValue = parseFloat( valor ) ;

				// en caso de que no sea numero
				if( isNaN( numValue ) )
					// regresa 0
					return 0 ;
				// en caso de que si sea numero
				else
					// regresa el numero
					return numValue ;
			}
			
		}
	}

	// regresa el numero maximo de meses solicitado por los campos de 'duracion de la campania' visibles.
	function getMesesMaximoVisible( )
	{
		// recorre todos los campos de duracion de campania y los visibles revisa el valor
		// resultado
		maxMeses = 0 ;

		// toma la columna del campo de duracion de meses
		dcActual = document.getElementById( "DC" ) ;

		// convierte a numero el valor
		valorInt = parseInt( dcActual.value ) ;

		// en caso d eque no exista
		if( isNaN( valorInt ) )
			return 0 ;
		// en caso contrario
		else
			return valorInt ;
	}

	// actualiza el numero de renglones de tipo response rate.
	function updateRRRow( newRowsStr )
	{
		// convierte a numero
		newRows = parseInt( newRowsStr ) ;

//		alert( "updateRRRow: " + newRows ) ;
		
		// en caso d que no sea numero
		if( isNaN( newRows ) )
			// actualiza el valor a 0
			newRows = 0 ;

		// obtiene el numero maximo de meses que se requieren
		mesesMaximo = getMesesMaximoVisible( ) ;

		// en newRows deja el mayor
		// si mesesMaximo es mayor que newRows le cambia el resultado
		if( mesesMaximo > newRows )
			newRows = mesesMaximo ;
		// en caso de que newRows sea mayor que mesesMaximo asi deja el valor
		
		// revisa que newRows se mayor que numberOfResponseRateRows 
		// en caso d eque sea menor o igual
		if( newRows <= numberOfResponseRateRows )
			// sale del metodo
			return ;

		// toma los renglones donde se va a colocar
		trIt = getTRIT( ) ;
		trDc = getTRGDVTP( ) ;

		indexIt = getTRITIndex( ) ;
		indexDc = getTRGDVTPIndex( ) ;
		indexTemp = 0 ;
		indexTemp1 = 0 ;
		
		// en caso de que sea mayor
		// agrega los renglones que faltan
		// recorre
		for( i = numberOfResponseRateRows + 1 ; i <= newRows ; i++ )
		{
			// crea el tr del response rate
//			trNew = tabla.createElement( "tr" ) ;
			trNew = tabla.insertRow( indexIt + indexTemp ) ;
			indexTemp++ ;
			trNew.setAttribute( "id" , "RR-" + i ) ;

//			alert( "updateRRRow: " + i ) ;
			
			// crea el td para etiqueta de response rate
			tdNew = document.createElement( "td" ) ;
			tdNew.setAttribute( "style" , "font-weight: bolder; text-align: left; " ) ;
			// crea texto
			bNew = document.createElement( "b" ) ;
			textNew = document.createTextNode( "Response rate mes " + i ) ;
			bNew.appendChild( textNew ) ;
			// agrega a tdNew
			tdNew.appendChild( bNew ) ;
			// agresga a trNew
			trNew.appendChild( tdNew ) ;

//			alert( "updateRRRow: 1.0: " + newRows ) ;
			
			// crea el td para campo de response rate de cada uno de los productos
<c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" >
			// genera el td del campo para el producto ${prod}
			tdNew = document.createElement( "td" ) ;
			tdNew.setAttribute( "style" , "font-weight: bolder; text-align: left; " ) ;
			tdNew.style.display = "block" ;

//			alert( "updateRRRow: agrega RR-Field-" + i + "-" + ${prod} ) ;
			
			tdNew.setAttribute( "id" , "RR-Field-" + i + "-" + ${prod} ) ;
			// agresga a trNew
			trNew.appendChild( tdNew ) ;
</c:forEach>

			// agrega el trNew a la tabla
//			tabla.insertBefore( trNew , trIt ) ;

//		alert( "updateRRRow: 2.0: " + newRows ) ;
		
			////// 
			// crea el renglon para GDV por mes
//			trNew = document.createElement( "tr" ) ;
			trNew = tabla.insertRow( indexDc + indexTemp + indexTemp1 ) ;
			indexTemp1++ ;
			trNew.setAttribute( "id" , "GPM-" + i ) ;

			// crea el td para etiqueta de response rate
			tdNew = document.createElement( "td" ) ;
			tdNew.setAttribute( "style" , "font-weight: bolder; text-align: left; " ) ;
			bNew = document.createElement( "b" ) ;
			textNew = document.createTextNode( "GDV por mes " + i ) ;
			bNew.appendChild( textNew ) ;
			// agrega a tdNew
			tdNew.appendChild( bNew ) ;
			// agresga a trNew
			trNew.appendChild( tdNew ) ;

			// crea el td para campo de response rate de cada uno de los productos
<c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" >
			// genera el td del campo para el producto ${prod}
			tdNew = document.createElement( "td" ) ;
			tdNew.setAttribute( "style" , "font-weight: bolder; text-align: left; " ) ;
			tdNew.setAttribute( "id" , "GPM-Field-" + i + "-" + ${prod} ) ;
			tdNew.style.display = "block" ;
			// agresga a trNew
			trNew.appendChild( tdNew ) ;
</c:forEach>

			// agrega el trNew a la tabla
//			tabla.insertBefore( trNew , trDc ) ;

		}// termin a el for para recorrer los elementos a crear

		// actualiza el valor de numberOfResponseRateRows
		numberOfResponseRateRows = newRows ;
	}

	// regresa el tr del Incremental Transaction
	function getTRIT( )
	{
//		alert( 1 ) ;
		// toma la table
		tabla = document.getElementById( "TablaAssetProducto" ) ;

//		alert( 2 ) ;
		// encuentra el tr TR-IT y TR-DC
		trIt = null ;
		
//		alert( 3 ) ;
		// toma los elementos hijos (elementos tr)
		trs = tabla.getElementsByTagName( "tr" ) ;

//		alert( 4 ) ;
		if( ! trs )
			return ;

//		alert( 5 ) ;
		// recorre los tr
		for( i = 0 ; i < trs.length ; i++ )
		{
//			alert( 6 ) ;
			// toma el atributo id
			idAttrA = trs[ i ].attributes.getNamedItem("id") ;

//			alert( 7 ) ;
			// en caso de que no exista el id
			if( ! idAttrA )
				// siguiente
				continue ;

//			alert( 8 ) ;
			// toma el valor
			idAttr = idAttrA.nodeValue ;

//			alert( 9 ) ;
			if( ! idAttr )
				// siguiente
				continue ;
			
//			alert( 10 ) ;
			// en caso de que empiece con GDV-
			if( idAttr == "TR-IT" )
			{
//				alert( 10.1 ) ;
				// actualiza el trIt
				trIt = trs[ i ] ;

				// reompe el ciclo
				break ;
			}
//			alert( 11 ) ;
			
		}

		// regresa resultado
		return trIt ;
	}

	// regresa el tr del Incremental Transaction
	function getTRITIndex( )
	{
		// toma la table
		tabla = document.getElementById( "TablaAssetProducto" ) ;

		// encuentra el tr TR-IT y TR-DC
		trIt = null ;
		
		// toma los elementos hijos (elementos tr)
		trs = tabla.getElementsByTagName( "tr" ) ;

		if( ! trs )
			return ;

		// recorre los tr
		for( i = 0 ; i < trs.length ; i++ )
		{
			// toma el atributo id
			idAttrA = trs[ i ].getAttributeNode("id") ;

			// en caso de que no exista el id
			if( ! idAttrA )
				// siguiente
				continue ;

			idAttr = idAttrA.nodeValue ;
			
			if( ! idAttr )
				// siguiente
				continue ;

			// en caso de que empiece con GDV-
			if( idAttr == "TR-IT" )
			{
				return i ;
			}
			
		}

		// regresa resultado
		return -1 ;
	}

	// regresa el ultimo tr del Response Rate
	function getLastRRRow( )
	{
		// toma la table
		tabla = document.getElementById( "TablaAssetProducto" ) ;

		// encuentra el tr TR-IT y TR-DC
		trRR = null ;
		
		// toma los elementos hijos (elementos tr)
		trs = tabla.getElementsByTagName( "tr" ) ;

		if( ! trs )
			return ;

		// recorre los tr
		for( i = 0 ; i < trs.length ; i++ )
		{
			// toma el atributo id
			idAttrA = trs[ i ].getAttributeNode("id") ;

			// en caso de que no exista el id
			if( ! idAttrA )
				// siguiente
				continue ;

			idAttr = idAttrA.nodeValue ;
			
			if( ! idAttr )
				// siguiente
				continue ;

			// en caso de que empiece con GDV-
			if( idAttr.startsWith( "RR-" ) )
				// actualiza el trIt
				trRR = trs[ i ] ;
			
		}

		// regresa resultado
		return trRR ;
	}

	// regresa el ultimo tr del Response Rate
	function getLastGDVRow( )
	{
		// toma la table
		tabla = document.getElementById( "TablaAssetProducto" ) ;

		// encuentra el tr TR-IT y TR-DC
		trGDV = null ;
		
		// toma los elementos hijos (elementos tr)
		trs = tabla.getElementsByTagName( "tr" ) ;

		if( ! trs )
			return ;

		// recorre los tr
		for( i = 0 ; i < trs.length ; i++ )
		{
			// toma el atributo id
			idAttrA = trs[ i ].getAttributeNode("id") ;

			// en caso de que no exista el id
			if( ! idAttrA )
				// siguiente
				continue ;

			idAttr = idAttrA.nodeValue ;
			
			if( ! idAttr )
				// siguiente
				continue ;

			// en caso de que empiece con GDV-
			if( idAttr.startsWith( "GDV-" ) )
				// actualiza el trIt
				trGDV = trs[ i ] ;
			
		}

		// regresa resultado
		return trGDV ;
	}

	// regresa el tr de Duracion de la campania
	function getTRDC( )
	{
		// toma la table
		tabla = document.getElementById( "TablaAssetProducto" ) ;

		// encuentra el tr TR-IT y TR-DC
		trDc = null ;
		
		// toma los elementos hijos (elementos tr)
		trs = tabla.getElementsByTagName( "tr" ) ;

		if( ! trs )
			return ;

		// recorre los tr
		for( i = 0 ; i < trs.length ; i++ )
		{
			// toma el atributo id
			idAttrA = trs[ i ].getAttributeNode("id") ;

			// en caso de que no exista el id
			if( ! idAttrA )
				// siguiente
				continue ;

			idAttr = idAttrA.nodeValue ;
			
			if( ! idAttr )
				// siguiente
				continue ;

			// en caso de que empiece con GDV-
			if( idAttr == "TR-DC" )
			{
				// actualiza el trIt
				trDc = trs[ i ] ;

				// reompe el ciclo
				break ;
			}
			
		}

		// regresa resultado
		return trDc ;
	}

	// regresa el tr de Duracion de la campania
	function getTRDCIndex( )
	{
		// toma la table
		tabla = document.getElementById( "TablaAssetProducto" ) ;

		// encuentra el tr TR-IT y TR-DC
		trDc = null ;
		
		// toma los elementos hijos (elementos tr)
		trs = tabla.getElementsByTagName( "tr" ) ;

		if( ! trs )
			return ;

		// recorre los tr
		for( i = 0 ; i < trs.length ; i++ )
		{
			// toma el atributo id
			idAttrA = trs[ i ].getAttributeNode("id") ;

			// en caso de que no exista el id
			if( ! idAttrA )
				// siguiente
				continue ;

			idAttr = idAttrA.nodeValue ;
			
			if( ! idAttr )
				// siguiente
				continue ;

			// en caso de que empiece con GDV-
			if( idAttr == "TR-DC" )
			{
				return i ;
			}
			
		}

		// regresa resultado
		return -1 ;
	}

	// regresa el tr de GDV total del producto
	function getTRGDVTP( )
	{
		// toma la table
		tabla = document.getElementById( "TablaAssetProducto" ) ;

		// encuentra el tr TR-IT y TR-DC
		trDc = null ;
		
		// toma los elementos hijos (elementos tr)
		trs = tabla.getElementsByTagName( "tr" ) ;

		if( ! trs )
			return ;

		// recorre los tr
		for( i = 0 ; i < trs.length ; i++ )
		{
			// toma el atributo id
			idAttrA = trs[ i ].getAttributeNode("id") ;

			// en caso de que no exista el id
			if( ! idAttrA )
				// siguiente
				continue ;

			idAttr = idAttrA.nodeValue ;
			
			// en caso de que no exista el id
			if( ! idAttr )
				// siguiente
				continue ;

			// en caso de que empiece con GDV-
			if( idAttr == "TR-GDV-TP" )
			{
				// actualiza el trIt
				trDc = trs[ i ] ;

				// reompe el ciclo
				break ;
			}
			
		}

		// regresa resultado
		return trDc ;
	}

	// regresa el tr de GDV total del producto
	function getTRGDVTPIndex( )
	{
		// toma la table
		tabla = document.getElementById( "TablaAssetProducto" ) ;

		// encuentra el tr TR-IT y TR-DC
		trDc = null ;
		
		// toma los elementos hijos (elementos tr)
		trs = tabla.getElementsByTagName( "tr" ) ;

		if( ! trs )
			return ;

		// recorre los tr
		for( i = 0 ; i < trs.length ; i++ )
		{
			// toma el atributo id
			idAttrA = trs[ i ].getAttributeNode("id") ;

			// en caso de que no exista el id
			if( ! idAttrA )
				// siguiente
				continue ;

			idAttr = idAttrA.nodeValue ;
			
			if( ! idAttr )
				// siguiente
				continue ;

			// en caso de que empiece con GDV-
			if( idAttr == "TR-GDV-TP" )
			{
				return i ;
			}
			
		}

		// regresa resultado
		return -1 ;
	}
	
	// crea los tr con el gdv para mes venidos en el argumento
	function createTRGdv( numberOfTR , idProduct )
	{
		// borra los elementos existentes
		deleteTRGdv( ) ;

		// si no hay argumento
		if( ! numberOfTR )
			return ;

		// si no hay argumento
		if( ! idProduct )
			return ;

		// toma la table
		tabla = document.getElementById( "TablaAssetProducto" ) ;

		// encuentra el tr TR-IT y TR-DC
		trIt = null ;
		trDc = null ;
		
		// toma los elementos hijos (elementos tr)
		trs = tabla.getElementsByTagName( "tr" ) ;

		if( ! trs )
			return ;

		// recorre los tr
		for( i = 0 ; i < trs.length ; i++ )
		{
			// toma el atributo id
			idAttrA = trs[ i ].getAttributeNode("id") ;

			// en caso de que no exista el id
			if( ! idAttrA )
				// siguiente
				continue ;

			idAttr = idAttrA.nodeValue ;
			
			if( ! idAttr )
				// siguiente
				continue ;

			// en caso de que empiece con GDV-
			if( idAttr == "TR-IT" )
				// actualiza el trIt
				trIt = trs[ i ] ;
			
			// en caso de que empiece con GDV-
			if( idAttr == "TR-DC" )
				// actualiza el trIt
				trDc = trs[ i ] ;
		}
		
		// recorre desde 1 hasta el numero de elementos dados
		for( i = 1 ; i <= numberOfTR ; i++ )
		{
			// crea el tr
			trNew = document.createElement( "tr" ) ;
			trNew.setAttribute( "id" , "GDV-" + i ) ;

			// crea el td para etiqueta de response rate
			tdNew = document.createElement( "td" ) ;
			tdNew.setAttribute( "style" , "font-weight: bolder; text-align: left; " ) ;
			// crea texto
			textNew = document.createTextNode( "Response rate mes " + i ) ;
			// agrega a tdNew
			tdNew.appendChild( textNew ) ;
			// agresga a trNew
			trNew.appendChild( tdNew ) ;

			// crea el td para 
		}
		
	}
	// borra los tr de gdv
	function deleteTRGdv( )
	{
		// toma la table
		tabla = document.getElementById( "TablaAssetProducto" ) ;

		// toma los elementos hijos (elementos tr)
		trs = tabla.getElementsByTagName( "tr" ) ;

		if( ! trs )
			return ;

		// recorre los tr
		for( i = 0 ; i < trs.length ; i++ )
		{
			// toma el atributo id
			idAttrA = trs[ i ].getAttributeNode("id") ;

			// en caso de que no exista el id
			if( ! idAttrA )
				// siguiente
				continue ;

			idAttr = idAttrA.nodeValue ;
			
			if( ! idAttr )
				// siguiente
				continue ;

			// en caso de que empiece con GDV-
			if( idAttr.startsWith( "GDV-" ) )
				// borra el elemento de la tabla
				tabla.removeChild( trs[ i ] ) ;
		}
	}
        
        function valida()
        {
            
            op = document.getElementById("operation").value ;
            tCampania = document.getElementById( "tipoCampania" ).value ;
            vEstr = document.getElementById("estrategica");
            vRoiS = '';
            
            if ( op == 3 ){
                return true;
            }else
                if ( tCampania != 2 ){
                    
                    vRoi = document.getElementById("roi").value ;
                    vRoiS = vRoi.substring(0,8) ;
                    roi = parseFloat( vRoiS );   
                    
                    
//                  alert("Valor Estr= " + vEstr );
                    if ( roi < 1 && !vEstr.checked ){
                        alert("Revisar Target Assumptions");                
                        return false;
                    }else
            
                        if ( roi >= 1 && vEstr.checked ){
                            alert("La Campa\u00f1a cumple con los requerimientos, desmarca el check Estrategica");
                            return false;
                        }            
                }else
                    if ( tCampania == 2 ){
                        
                    
                vRoi = document.getElementById("roiTar").value ;
                vRoiS = vRoi.substring(0,8) ;
                roi = parseFloat( vRoiS );                
                
                if ( roi < 1 && !vEstr.checked ){
                        alert("Revisar Target Assumptions");                
                        return false;
                    }else            
                        if ( roi >= 1 && vEstr.checked ){
                            alert("La Campa\u00f1a cumple con los requerimientos, desmarca el check Estrategica");
                            return false;
                        }
                }
                return true;
                        
            //alert("Valor Estr= " + document.FormaAlta.estrategica.value );
            
        }
        
        function submitform()
        {
            document.forms["FormaAlta"].submit();
        }
        function solonumero( obj , permiteDecimal )
						{
							cadena = obj.value ;
//							alert( parseInt( cadena ) ) ;

//							if( parseInt( cadena ) == NaN )
//							{
//								obj.value = cadena.substring( 0 , cadena.length - 1 ) ;
//
//								return false ;
//							}
//							else
//							{
								// checa todos los caracgteres
//								for( i = 0 ; i < cadena.length ; i++ )
//								{
//									alert( cadena.charAt( i ) ) ;
//									alert( isDigit( cadena.charAt( i ) ) ) ;
//									if( isDigit( cadena.charAt( i ) ) == NaN )
//									{
//										alert( 'Nan el ' + cadena.charAt( i ) ) ;
//										obj.value = cadena.substring( 0 , i ) ;
//										return false ;
//									}
//								}
//							}
							
							permiteDecimales = permiteDecimal ;
							numeroDecimales = 0 ;
							key = ( document.all ) ? event.keyCode:event.which ;

							// en caso de que sea el -
							if( key == 45 )
							{
								// en caso de que la cadena sea no vacia
								if( cadena.length > 0 )
									return false ;
								// en caso de que no haya -
								else if( cadena.indexOf( '-' ) == -1 )
									return true ;
								else
									return false ;
							}
							
//							alert( permiteDecimales ) ;
							if ( permiteDecimales == 1 )
							{
								dectext = cadena.substring( cadena.indexOf( '.' ) + 1 , cadena.length ) ;
								if ( cadena.indexOf( '.' ) == -1 && cadena.length > 0 )
								{
									return ( ( key >= 48 && key <= 57 ) || key == 46 ) ;
								}
								else
								{
									if ( dectext.length >= numeroDecimales )
									{
										return ( window.event.keyCode = 0 ) ;
									}
									else
									{
										return ( ( key >= 48 && key <= 57 ) ) ;
									}
								}
							}
							else
							{
								return ( ( key >= 48 && key <= 57 ) ) ;
							}
						}        
</script>
<div id="calendar-container" style="display: none;"></div>
<div id="calendar-info" style="text-align: center; margin-top: 0.3em"></div>
					<div id="bodyContent">
						<h1>Generaci&oacute;n de Campa&ntilde;a Update</h1>
                                                <h2>Paso 2 de 3&nbsp;&nbsp;&nbsp;&nbsp;Retorno esperado de la Campa&ntilde;a</h2>
                                                <html:form action="/GenerarCampanaRegistrar" method="post" styleId="FormaAlta" >
<c:set var="DuracionCampa" value="${fn:length(GenerarCampanaRegistrarForm.duraCamp)}" />
                                                    
						<html:hidden property="operation" styleId="operation"/>
<c:forEach items="${GenerarCampanaRegistrarForm.paquetesParaCampana}" var="paq">
						<html:hidden property="packageCountId" value="${paq.cveCtaPaquete}"/>
</c:forEach>						
                                                <html:hidden property="nombre" styleClass="txtInputNombre" value="${GenerarCampanaRegistrarForm.nombre}"/>
                                                <html:hidden property="fechaIni" styleId="fechaIni" styleClass="txtInput" value="${GenerarCampanaRegistrarForm.fechaIni}"/>
                                                <html:hidden property="fechaFin" styleId="fechaFin" styleClass="txtInput" value="${GenerarCampanaRegistrarForm.fechaFin}"/>
                                                <html:hidden property="tipoCampania" styleId="tipoCampania" styleClass="tipoCampania" value="${GenerarCampanaRegistrarForm.tipoCampania}" />
                                                <html:hidden property="inversion" value="${GenerarCampanaRegistrarForm.inversion}" />
                                                <html:hidden property="proposito" value="${GenerarCampanaRegistrarForm.proposito}" />
<c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prodto">                                                
                                                <html:hidden property="producto" styleId="producto" styleClass="producto" value="${prodto}" />
</c:forEach>                                                
<c:forEach items="${GenerarCampanaRegistrarForm.tipoProducto}" var="tiprodto" varStatus="TPstatus">                                                
                                                <html:hidden property="tipoProducto" styleId="tipoProducto" styleClass="tipoProducto" value="${tiprodto}" />
</c:forEach>                                                
                                                <html:hidden property="multiplePartner" value="${GenerarCampanaRegistrarForm.multiplePartner}" />                                                
                                                <html:hidden property="userInCharge" styleId="userInCharge" styleClass="userInCharge" value="${GenerarCampanaRegistrarForm.newUser.cveUsuario}" />
                                                <html:hidden property="cveCuenta" value="${UserLogin.actualCountId}"/>                                                
                                                <html:hidden property="texto" styleClass="txtInput" value="${GenerarCampanaRegistrarForm.texto}"/>
                                                <html:hidden property="duCa" value="${GenerarCampanaRegistrarForm.duCa}"/>
                                                <html:hidden property="ctp" styleId="ctp" value="${GenerarCampanaRegistrarForm.ctp}"/>
                                                
                                                
						<div class="errors"><html:errors/>${UserLogin.messageError }</div>
						<table class="tabForms" border="0">

							<tr >
                                                                <td colspan="2">
                                                                    <table style="display: block;" width="100%" border="0">
                                                                        <tr class="alt">
                                                                            <td style="background: lightgray; color: black; font-weight: bolder; text-align: left; " colspan="2">
                                                                                <b><bean:message key="com.mastercard.assets.web.errors.modules.generarcampana.labels.Estrategica"/></b>
                                                                                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" name="estrategica" id="estrategica"
                                                                                            onclick="if( this.checked == true ){document.getElementById( 'ComentarioEst' ).style.display = 'block';}
                                                                                            else{document.getElementById( 'ComentarioEst' ).style.display = 'none';}" />
                                                                            </td>
                                                                        </tr>
                                                                        
                                                                    </table>
                                                                    
                                                                </td>
							</tr>                                                                 
                                                        <tr id="ComentarioEst" style="display: none;"> 
                                                            <td width="25" style="color: black; font-weight: bolder; text-align: left; ">Comentarios</td>
                                                            <td ><html:textarea property="comentarios" styleClass="txtInput" style='width:99%;height:50px;'/></textarea></td>
                                                        </tr>
                                                        <tr>
                                                            <td colspan="2" style="color: black; font-weight: bolder; text-align: left; ">
                                                                <b><bean:message key="com.mastercard.assets.web.errors.modules.generarcampana.labels.CountryManager"/></b>
                                                                <input type="checkbox" name="autCountryM" id="autCountryM" />
                                                            </td>
                                                        </tr>
<c:set var="AllProductsLength" value="${fn:length(GenerarCampanaRegistrarForm.producto)}" />
<c:set var="TableAssetColPercentage" value="${25}" />
<c:set var="TableProductColPercentage" value="${( 100 - TableAssetColPercentage ) / AllProductsLength }" />
<c:set var="cpw" value="${fn:length(GenerarCampanaRegistrarForm.cpw)}" />
<c:set var="cpaw" value="${fn:length(GenerarCampanaRegistrarForm.cpaw)}" />
<c:set var="toolL" value="${fn:length(GenerarCampanaRegistrarForm.lBT)}" />

<c:choose>
    <c:when test="${GenerarCampanaRegistrarForm.tipoCampania eq 2 }">
        <tr>
    <td colspan="2">
        

        
        <table width="100%" border="0">
            <tr>
		<td width="${TableAssetColPercentage }%" style="background: lightgray; color: black; font-weight: bolder; text-align: left; ">
			Target Assumptions                                    
		</td>
<c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" >
		<td id="TD-Title-${prod}" style="background: lightgray; color: black; font-weight: bolder; text-align: left; ">
			<c:if test="${prod eq 2}">Standard</c:if>   <c:if test="${prod eq 3}">Gold</c:if> <c:if test="${prod eq 4}">Platinum</c:if>   
                        <c:if test="${prod eq 5}">World Elite</c:if> <c:if test="${prod eq 6}">Platinum Debit</c:if>   
                        <c:if test="${prod eq 7}">Standard Debit</c:if> <c:if test="${prod eq 8}">Gold Debit</c:if>
                        <c:if test="${prod eq 13}">Black</c:if> <c:if test="${prod eq 14}">Comercial</c:if>
		</td>
</c:forEach>
            </tr>
            
            
            <c:forEach items="${GenerarCampanaRegistrarForm.duraCamp}" var="durac" varStatus="duracStatus" >
                    <tr id="TPM-${duracStatus.count}">
                        <td style="font-weight: bolder; text-align: left; ">
                           Tarjetas nuevas mes ${duracStatus.count} 
                        </td>
<c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" >    
                        <td style="text-align: left; ">
    <c:if test="${cpaw ne 0}">
        <c:forEach items="${GenerarCampanaRegistrarForm.lBT}" var="tool" varStatus="toolStatus">
            <c:if test="${prod eq tool.prod}">
                <c:forEach items="${tool.listaNumero}" var="list" varStatus="listStatus">
                    <c:if test="${listStatus.count eq duracStatus.count}">
                        <input type="text" onkeyup="changeTextField2( ${prod} );" id="Inp-Adq-${prod}-${duracStatus.count}" name="Inp-Adq-${prod}-${duracStatus.count}" style="width: 100px;" value="${list}" onkeypress="return solonumero(this,event)"/>(numero)
                        <c:set var="print1" value="1"/>
                    </c:if>
                </c:forEach>
                
            </c:if>
        </c:forEach>
        
        <c:if test="${print1 eq 0}">
            <input type="text" onkeyup="changeTextField2( ${prod} );" id="Inp-Adq-${prod}-${duracStatus.count}" name="Inp-Adq-${prod}-${duracStatus.count}" style="width: 100px;" value="0" onkeypress="return solonumero(this,event)"/>(numero)
        </c:if>
        
    </c:if>
        
    <c:if test="${cpaw eq 0}">
        <input type="text" onkeyup="changeTextField2( ${prod} );" id="Inp-Adq-${prod}-${duracStatus.count}" name="Inp-Adq-${prod}-${duracStatus.count}" style="width: 100px;" value="0" onkeypress="return solonumero(this,event)"/>(numero)
    </c:if>        
                        </td>
</c:forEach>
                    </tr>
            </c:forEach>
            
            <tr id="TR-TNTP">
			<td width="${TableAssetColPercentage }%" style="font-weight: bolder; text-align: left; ">
				Tarjetas nuevas totales por producto
			</td>
<c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" >
			<td style="text-align: left; ">
                            <c:if test="${cpaw ne 0}">
                                <c:forEach items="${GenerarCampanaRegistrarForm.lBT}" var="lBT" varStatus="lBTStatus">
                                    <c:if test="${lBT.prod eq prod}">
                                        <input type="text" readonly="true" name="TNTP-${lBT.prod}" id="TNTP-${lBT.prod}" value="${lBT.totalCards}"/>(numero)
                                    </c:if>                                    
                                </c:forEach>
                            </c:if>
                            
                            <c:if test="${cpaw eq 0}">
                                <input type="text" readonly="true" name="TNTP-${prod}" id="TNTP-${prod}" value="0"/>(numero)
                            </c:if>				
			</td>
</c:forEach>
            </tr>
            
            <tr>
		<td style="font-weight: bolder; text-align: left; ">
			Tarjetas nuevas totales
		</td>
		<td id="TD-10" style="text-align: left; ">
                    <c:if test="${cpaw ne 0}">
                        <input readonly="true" type="tetx" id="TNTotal-h" name="GDVTotal-h" style="width: 100px;" value="${GenerarCampanaRegistrarForm.cardsCampain }" >(numero)
                    </c:if>
                    <c:if test="${cpaw eq 0}">
                        <input readonly="true" type="tetx" id="TNTotal-h" name="GDVTotal-h" style="width: 100px;" value="${mcfn:getParam( 'GDVTotal-h' , request ) }" >(numero)
                    </c:if>                        
		</td>
	</tr>
        
        <tr>
		<td style="font-weight: bolder; text-align: left; ">
                    <c:if test="${cpaw ne 0}">
                        <input type="text" readonly="true" id="roiTar" name="roi" style="width: 100px;" value="${GenerarCampanaRegistrarForm.roi }" maxlength="9" >ROI<br>
                        <input type="hidden" readonly="true"  id="revTTar" name="revT" style="width: 100px;" value="${GenerarCampanaRegistrarForm.revT }" ><!--Revenue-->
                    </c:if>
                    <c:if test="${cpaw eq 0}">
                        <input type="text" readonly="true" id="roiTar" name="roi" style="width: 100px;" value="0.0" maxlength="9" >ROI<br>
                        <input type="hidden" readonly="true"  id="revTTar" name="revT" style="width: 100px;" value="0.0" ><!--Revenue-->
                    </c:if>
                    
                    
		</td>
<c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" >
		<td style="text-align: left; ">                    
                    
                 <input type="hidden" name="numberOfMonths" id="numberOfMonths" value="${GenerarCampanaRegistrarForm.duCa}" />
                    
                
                <c:forEach items="${GenerarCampanaRegistrarForm.tblDomestic}" var="dom" varStatus="domStatus" >
                    
                    <c:if test="${dom.tblProducto.cveProducto eq prod}">
                        
                        <input type="hidden" readonly="true" id="cardBps-${prod}" name="intlBps-${prod}" style="width: 100px;" value="${dom.cardBps}" ><!--CardBps-->
                        
                        <input type="hidden" readonly="true" id="revTar-${prod}" name="revTar-${prod}" style="width: 100px;" ><!--Revenue Producto-->
                    </c:if>
                
                </c:forEach>

		</td>
</c:forEach>
	</tr>
            
        </table>
        
    </td>
</tr>
    </c:when>
    <c:otherwise>
        <tr>
                                                                     <td colspan="2">
<table id="TablaAssetProducto" style="display: block;" width="100%" border="0">
	<tr>
		<td width="${TableAssetColPercentage }%" style="background: lightgray; color: black; font-weight: bolder; text-align: left; ">
			Target Assumptions
		</td>
<c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" >
		<td id="TD-Title-${prod}" style="background: lightgray; color: black; font-weight: bolder; text-align: left; ">
			<c:if test="${prod eq 2}">Standard</c:if>   <c:if test="${prod eq 3}">Gold</c:if> <c:if test="${prod eq 4}">Platinum</c:if>   
                        <c:if test="${prod eq 5}">World Elite</c:if> <c:if test="${prod eq 6}">Platinum Debit</c:if>   
                        <c:if test="${prod eq 7}">Standard Debit</c:if> <c:if test="${prod eq 8}">Gold Debit</c:if>
                        <c:if test="${prod eq 13}">Black</c:if> <c:if test="${prod eq 14}">Comercial</c:if>
		</td>
</c:forEach>
        </tr>
        <tr>
		<td style="font-weight: bolder; text-align: left; ">
                           <c:if test="${GenerarCampanaRegistrarForm.tipoCampania eq 8}">Cuentas Inactivas</c:if>
                           <c:if test="${GenerarCampanaRegistrarForm.tipoCampania ne 8}">Cuentas Participantes</c:if>			
		</td>
<c:if test="${cpw ne 0}">
    <c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" ><c:set var="cpName" value="CP-${prod}"/><c:set var="print1" value="0"/>
        <c:forEach items="${GenerarCampanaRegistrarForm.cpw}" var="cpw" varStatus="cpwStatus">
            <c:if test="${prod eq cpw.cveProducto}">
                <td id="TD-1-${prod}" style="text-align: left;">
                    <input onkeyup="changeTextField( ${prod} );" type="text" style="width: 100px;" class="oculta" name="${cpName}" id="${cpName}" value="${cpw.cp}" onkeypress="return solonumero(this,event)"/>
                </td>
                <c:set var="print1" value="1"/>
            </c:if>            
        </c:forEach>
        <c:if test="${print1 eq 0}">
               <td id="TD-1-${prod}" style="text-align: left;">
                    <input onkeyup="changeTextField( ${prod} );" type="text" style="width: 100px;" class="oculta" name="${cpName}" id="${cpName}" value="${mcfn:getParam( cpName , request ) }" onkeypress="return solonumero(this,event)"/>
               </td>     
        </c:if>        
    </c:forEach>        
</c:if>
<c:if test="${cpw eq 0}">
    <c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" ><c:set var="cpName" value="CP-${prod}"/>
		<td id="TD-1-${prod}" style="text-align: left;">
			<input onkeyup="changeTextField( ${prod} );" type="text" style="width: 100px;" class="oculta" name="${cpName}" id="${cpName}" value="${mcfn:getParam( cpName , request ) }" onkeypress="return solonumero(this,event)"/>
		</td>
</c:forEach>    
</c:if>

	</tr>
        <tr>
		<td style="font-weight: bolder; text-align: left; ">
			Average ticket (dolares)
		</td>
<c:if test="${cpw ne 0}">
    <c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" ><c:set var="atName" value="AT-${prod}"/><c:set var="print1" value="0"/>
        <c:forEach items="${GenerarCampanaRegistrarForm.cpw}" var="cpw" varStatus="cpwStatus">
            <c:if test="${prod eq cpw.cveProducto}">
                <td id="TD-2-${prod}" style="text-align: left; ">
                    $<input onkeyup="changeTextField( ${prod} );" type="text" style="width: 50px;" name="${atName}" id="${atName}" value="${cpw.at}" onkeypress="return solonumero(this,event)" />
                </td>
                <c:set var="print1" value="1"/>
            </c:if>
        </c:forEach>
        <c:if test="${print1 eq 0}">
            <td id="TD-2-${prod}" style="text-align: left; ">
                $<input onkeyup="changeTextField( ${prod} );" type="text" style="width: 50px;" name="${atName}" id="${atName}" value="${mcfn:getParam( atName , request ) }" onkeypress="return solonumero(this,event)"/>
            </td>
        </c:if>
    </c:forEach>                    
</c:if>
<c:if test="${cpw eq 0}">
    <c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" ><c:set var="atName" value="AT-${prod}"/>
        <td id="TD-2-${prod}" style="text-align: left; ">
            $<input onkeyup="changeTextField( ${prod} );" type="text" style="width: 50px;" name="${atName}" id="${atName}" value="${mcfn:getParam( atName , request ) }" onkeypress="return solonumero(this,event)"/>
	</td>
    </c:forEach>
</c:if>
	</tr>
        <tr id="TR-DC">
		<td style="font-weight: bolder; text-align: left; ">
			Duraci&oacute;n de la campa&ntilde;a (meses)
		</td>
		<td id="TD-3" style="text-align: left; ">
                    <c:if test="${DuracionCampa eq 20}"><input disabled="true" type="text" style="width: 50px;" name="DC" id="DC" value="0" /></c:if>
                    <c:if test="${DuracionCampa ne 20}"><input disabled="true" type="text" style="width: 50px;" name="DC" id="DC" value="${DuracionCampa}" /></c:if>
		</td>
	</tr>
        <!-- Pinta rows -->
<c:forEach items="${GenerarCampanaRegistrarForm.duraCamp}" var="durac" varStatus="duracStatus" >
                    <tr id="RR-${duracStatus.count}">
                        <td style="font-weight: bolder; text-align: left; ">
                           <c:if test="${GenerarCampanaRegistrarForm.tipoCampania eq 8}">Activation rate mes ${duracStatus.count} ( % )</c:if>
                           <c:if test="${GenerarCampanaRegistrarForm.tipoCampania ne 8}">Response rate mes ${duracStatus.count} ( % )</c:if>                             
                        </td>
    <c:if test="${cpw ne 0}">
        <c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" ><c:set var="RRIName" value="RR-Input-${duracStatus.count}-${prod}"/><c:set var="print1" value="0"/>
            <c:forEach items="${GenerarCampanaRegistrarForm.cpw}" var="cpw" varStatus="cpwStatus">
                <c:if test="${prod eq cpw.cveProducto}">
                    <c:forEach items="${cpw.rr}" var="rr" varStatus="rrStatus">
                        <c:if test="${rrStatus.count eq duracStatus.count}">
                            <td style="text-align: left; ">
                                <input type="text" id="RR-Input-${duracStatus.count}-${prod}" name="RR-Input-${duracStatus.count}-${prod}" onkeyup="changeTextField( ${prod} );" style="width: 50px;" value="${rr}" onkeypress="return solonumero(this,event)"/>
                            </td>
                            <c:set var="print1" value="1"/>
                        </c:if>
                    </c:forEach>
                    
                </c:if>
            </c:forEach>
            <c:if test="${print1 eq 0}">
                <td style="text-align: left; ">
                   <input type="text" id="RR-Input-${duracStatus.count}-${prod}" name="RR-Input-${duracStatus.count}-${prod}" onkeyup="changeTextField( ${prod} );" style="width: 50px;" onkeypress="return solonumero(this,event)"/>
               </td>
            </c:if>
        </c:forEach>
    </c:if>
    <c:if test="${cpw eq 0}">
           <c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" ><c:set var="RRIName" value="RR-Input-${duracStatus.count}-${prod}"/>
               <td style="text-align: left; ">
                   <input type="text" id="RR-Input-${duracStatus.count}-${prod}" name="RR-Input-${duracStatus.count}-${prod}" onkeyup="changeTextField( ${prod} );" style="width: 50px;" onkeypress="return solonumero(this,event)"/>
               </td>
           </c:forEach>         
    </c:if>
                    </tr>
</c:forEach>
        <!-- Pinta rows -->

        <tr id="TR-IT">
		<td style="font-weight: bolder; text-align: left; ">
			Incremental Transaction (numero)
		</td>
<c:if test="${cpw ne 0}">
    <c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" ><c:set var="itName" value="IT-${prod}"/><c:set var="print1" value="0"/>
        <c:forEach items="${GenerarCampanaRegistrarForm.cpw}" var="cpw" varStatus="cpwStatus">
            <c:if test="${prod eq cpw.cveProducto}">
                <td id="TD-7-${prod}" style="text-align: left; ">
			<input onkeyup="changeTextField( ${prod} );" type="text" style="width: 50px;" name="${itName}" id="${itName}" value="${cpw.it}" onkeypress="return solonumero(this,event)" />
		</td>
                <c:set var="print1" value="1"/>
            </c:if>
        </c:forEach>
        <c:if test="${print1 eq 0}">
            <td id="TD-7-${prod}" style="text-align: left; ">
                <input onkeyup="changeTextField( ${prod} );" type="text" style="width: 50px;" name="${itName}" id="${itName}" value="${mcfn:getParam( itName , request ) }" onkeypress="return solonumero(this,event)" />
            </td>
        </c:if>
    </c:forEach>
</c:if>
<c:if test="${cpw eq 0}">
       <c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" ><c:set var="itName" value="IT-${prod}"/>
		<td id="TD-7-${prod}" style="text-align: left; ">
			<input onkeyup="changeTextField( ${prod} );" type="text" style="width: 50px;" name="${itName}" id="${itName}" value="${mcfn:getParam( itName , request ) }"  onkeypress="return solonumero(this,event)"/>
		</td>
        </c:forEach>         
</c:if>
	</tr>
         <!-- Pinta rows -->
<c:forEach items="${GenerarCampanaRegistrarForm.duraCamp}" var="durac" varStatus="duracStatus" >
                    <tr id="GPM-${duracStatus.count}">
                        <td style="font-weight: bolder; text-align: left; ">
                           GDV por mes ${duracStatus.count} (dolares) 
                        </td>
<c:if test="${cpw ne 0}">
    <c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" ><c:set var="RR-InputHName" value="RR-InputH-${duracStatus.count}-${prod}"/><c:set var="print1" value="0"/>
        <c:forEach items="${GenerarCampanaRegistrarForm.cpw}" var="cpw" varStatus="cpwStatus">
            <c:if test="${prod eq cpw.cveProducto}">
                <c:forEach items="${cpw.gdvpm}" var="gdvpm" varStatus="gdvpmStatus">
                    <c:if test="${gdvpmStatus.count eq duracStatus.count}">
                        <td id="GPM-Field-${duracStatus.count}-${prod} " style="text-align: left; "><c:set var="RR-InputHName" value="RR-InputH-${duracStatus.count}-${prod}"/>
                            $<input type="text" readonly="true" id="RR-InputH-${duracStatus.count}-${prod}" name="RR-InputH-${duracStatus.count}-${prod}" style="width: 100px;" value="${gdvpm}" />
                        </td>
                        <c:set var="print1" value="1"/>
                    </c:if>
                </c:forEach>                
            </c:if>            
        </c:forEach>
        <c:if test="${print1 eq 0}">
            <td id="GPM-Field-${duracStatus.count}-${prod} " style="text-align: left; "><c:set var="RR-InputHName" value="RR-InputH-${duracStatus.count}-${prod}"/>
                $<input type="text" readonly="true" id="RR-InputH-${duracStatus.count}-${prod}" name="RR-InputH-${duracStatus.count}-${prod}" style="width: 100px;" />
            </td> 
        </c:if>
    </c:forEach>
                            
</c:if>
<c:if test="${cpw eq 0}">
    <c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" >
        <td id="GPM-Field-${duracStatus.count}-${prod} " style="text-align: left; "><c:set var="RR-InputHName" value="RR-InputH-${duracStatus.count}-${prod}"/>
            $<input type="text" readonly="true" id="RR-InputH-${duracStatus.count}-${prod}" name="RR-InputH-${duracStatus.count}-${prod}" style="width: 100px;" />
        </td>
    </c:forEach>
</c:if>
                    </tr>
</c:forEach>
        <!-- Pinta rows -->
        <tr id="TR-GDV-TP">
		<td style="font-weight: bolder; text-align: left; ">
			GDV total del producto (dolares)
		</td>
                <c:if test="${cpw ne 0}">
                    <c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" ><c:set var="rrInputHPName" value="RR-InputHP-${prod}"/><c:set var="print1" value="0"/>
                        <c:forEach items="${GenerarCampanaRegistrarForm.cpw}" var="cpw" varStatus="cpwStatus">
                            <c:if test="${prod eq cpw.cveProducto}">
                                <td id="TD-9-${prod}" style="text-align: left; ">
                                    $<input readonly="true" type="text" id="${rrInputHPName }" name="${rrInputHPName}" style="width: 100px;" value="${cpw.gdvtp}"/>
                                </td>
                                <c:set var="print1" value="1"/>
                            </c:if>
                        </c:forEach>
                        <c:if test="${print1 eq 0}">
                            <td id="TD-9-${prod}" style="text-align: left; ">
                                $<input readonly="true" type="text" id="${rrInputHPName }" name="${rrInputHPName}" style="width: 100px;" value="${mcfn:getParam( rrInputHPName , request ) }"/>
                            </td>
                        </c:if>
                    </c:forEach>
                </c:if>
<c:if test="${cpw eq 0}">
    <c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" ><c:set var="rrInputHPName" value="RR-InputHP-${prod}"/>
        <td id="TD-9-${prod}" style="text-align: left; ">
            $<input readonly="true" type="text" id="${rrInputHPName }" name="${rrInputHPName}" style="width: 100px;" value="${mcfn:getParam( rrInputHPName , request ) }"/>
        </td>
    </c:forEach>                                
</c:if>

	</tr>
        <tr>
		<td style="font-weight: bolder; text-align: left; ">
			GDV total (dolares)
		</td>
<c:if test="${cpw ne 0}">
    <td id="TD-10" style="text-align: left; ">
        $<input readonly="true" type="tetx" id="GDVTotal-h" name="GDVTotal-h" style="width: 100px;" value="${GenerarCampanaRegistrarForm.gdv}" >
    </td>
</c:if>
<c:if test="${cpw eq 0}">
    <td id="TD-10" style="text-align: left; ">
        $<input readonly="true" type="tetx" id="GDVTotal-h" name="GDVTotal-h" style="width: 100px;" value="${mcfn:getParam( 'GDVTotal-h' , request ) }" >
    </td>
</c:if>		
	</tr>
        
        <tr id="TR-GDV-TP">
		<td style="font-weight: bolder; text-align: left; ">
                    <c:if test="${cpw ne 0}">
                        <input type="text" readonly="true" id="roi" name="roi" style="width: 100px;" value="${GenerarCampanaRegistrarForm.roi}" >ROI <br>
                        <input type="hidden" readonly="true" id="revT" name="revT" style="width: 100px;" value="${GenerarCampanaRegistrarForm.revT}" ><!--Revenue-->
                    </c:if>
                    <c:if test="${cpw eq 0}">
                        <input type="text" readonly="true" id="roi" name="roi" style="width: 100px;" value="0.0" >ROI <br>
                        <input type="hidden" readonly="true" id="revT" name="revT" style="width: 100px;" value="0.0" ><!--Revenue-->
                    </c:if>
                    
		</td>
<c:forEach items="${GenerarCampanaRegistrarForm.producto}" var="prod" varStatus="prodStatus" >
		<td id="TD-9-${prod}" style="text-align: left; ">
                
                <c:forEach items="${GenerarCampanaRegistrarForm.tblDomestic}" var="dom" varStatus="domStatus" >
                    
                    <c:if test="${dom.tblProducto.cveProducto eq prod}">
                        <input type="hidden" readonly="true" id="domesticBps-${prod}" name="domesticBps-${prod}" style="width: 50px;" value="${dom.domesticBps}" ><!--domesticBps-->
                        <input type="hidden" readonly="true" id="percentDomestic-${prod}" name="percentDomestic-${prod}" style="width: 50px;" value="${dom.percentDomestic}" ><!--percentDomestic-->
                        <input type="hidden" readonly="true" id="intlBps-${prod}" name="intlBps-${prod}" style="width: 50px;" value="${dom.intlBps}" ><!--intlBps-->                        
                        <input type="hidden" readonly="true" id="rev-${prod}" name="rev-${prod}" style="width: 100px;" ><!--RevenueProducto-->
                    </c:if>
                
                </c:forEach>

		</td>
</c:forEach>
	</tr>
                
        
</table>
								 	</td>
                                                                 </tr>
    </c:otherwise>
</c:choose> 
                                                                

						</table>
						<span class="contentBtn"><html:image src="images/btnRegresar.gif" onclick="document.getElementById('operation').value='3';return true ;" /> &nbsp; <html:image src="images/btnSiguientes.gif" onclick="document.getElementById('operation').value='5';return valida();return submitform();"/></span>
						</html:form>
					</div>
					<div id="footContent"></div>
					
<c:if test="${mcfn:getParam( 'DC' , request ) ne '' }">
<script type="text/javascript">
changeDuracionCampana( '${mcfn:getParam( 'DC' , request ) }' ) ;
</script>
</c:if>
<%
UserLogin user = ( UserLogin ) session.getAttribute( "UserLogin" ) ;
user.clearMessageError( ) ;
%>